""" This file contains hard-coded values used in the integration test
test_upwind_coupling.test_upwind_coupling_3d_2d_1d_0d()

The values are moved into a separate file to avoid poluting the file
containing tests.

"""
import numpy as np
import scipy.sparse as sps


def matrix_rhs_for_test_upwind_coupling_3d_2d_1d_0d():

    row = np.array(
        [
            0,
            0,
            0,
            1,
            1,
            1,
            1,
            2,
            2,
            2,
            3,
            3,
            3,
            3,
            4,
            4,
            4,
            5,
            5,
            5,
            5,
            6,
            6,
            6,
            7,
            7,
            7,
            7,
            8,
            8,
            8,
            8,
            9,
            9,
            9,
            9,
            9,
            10,
            10,
            10,
            10,
            11,
            11,
            11,
            11,
            11,
            12,
            12,
            12,
            12,
            13,
            13,
            13,
            13,
            14,
            14,
            14,
            14,
            15,
            15,
            15,
            15,
            16,
            16,
            16,
            16,
            17,
            17,
            17,
            17,
            17,
            18,
            18,
            18,
            18,
            19,
            19,
            19,
            19,
            19,
            20,
            20,
            20,
            20,
            20,
            21,
            21,
            21,
            21,
            21,
            22,
            22,
            22,
            22,
            22,
            22,
            23,
            23,
            23,
            23,
            23,
            24,
            24,
            24,
            24,
            24,
            25,
            25,
            25,
            25,
            25,
            26,
            26,
            26,
            26,
            26,
            26,
            27,
            28,
            29,
            30,
            31,
            32,
            33,
            34,
            35,
            35,
            36,
            36,
            37,
            37,
            38,
            38,
            39,
            39,
            40,
            40,
            41,
            41,
            42,
            42,
            43,
            44,
            45,
            46,
            47,
            48,
            49,
            50,
            51,
            51,
            52,
            52,
            53,
            53,
            54,
            54,
            55,
            56,
            57,
            58,
            59,
            59,
            60,
            60,
            61,
            61,
            62,
            62,
            63,
            63,
            64,
            64,
            65,
            65,
            66,
            66,
            67,
            68,
            69,
            70,
            71,
            71,
            72,
            72,
            73,
            73,
            74,
            74,
            75,
            76,
            77,
            77,
            78,
            78,
            79,
            80,
        ],
        dtype=np.int32,
    )

    col = np.array(
        [
            31,
            39,
            49,
            1,
            32,
            35,
            50,
            33,
            41,
            45,
            3,
            34,
            37,
            46,
            27,
            40,
            47,
            5,
            28,
            36,
            48,
            29,
            42,
            43,
            7,
            30,
            38,
            44,
            27,
            31,
            52,
            58,
            9,
            28,
            32,
            51,
            56,
            29,
            33,
            54,
            57,
            11,
            30,
            34,
            53,
            55,
            35,
            39,
            60,
            64,
            36,
            40,
            59,
            66,
            37,
            41,
            62,
            63,
            38,
            42,
            61,
            65,
            43,
            47,
            70,
            74,
            17,
            44,
            48,
            68,
            73,
            45,
            49,
            69,
            72,
            19,
            46,
            50,
            67,
            71,
            51,
            52,
            59,
            60,
            75,
            53,
            54,
            61,
            62,
            76,
            22,
            55,
            56,
            67,
            68,
            77,
            57,
            58,
            69,
            70,
            78,
            63,
            64,
            71,
            72,
            79,
            65,
            66,
            73,
            74,
            80,
            75,
            76,
            77,
            78,
            79,
            80,
            27,
            28,
            29,
            30,
            31,
            32,
            33,
            34,
            12,
            35,
            13,
            36,
            14,
            37,
            15,
            38,
            0,
            39,
            4,
            40,
            2,
            41,
            6,
            42,
            43,
            44,
            45,
            46,
            47,
            48,
            49,
            50,
            20,
            51,
            8,
            52,
            21,
            53,
            10,
            54,
            55,
            56,
            57,
            58,
            20,
            59,
            12,
            60,
            21,
            61,
            14,
            62,
            24,
            63,
            12,
            64,
            25,
            65,
            13,
            66,
            67,
            68,
            69,
            70,
            24,
            71,
            18,
            72,
            25,
            73,
            16,
            74,
            75,
            76,
            26,
            77,
            23,
            78,
            79,
            80,
        ],
        dtype=np.int32,
    )

    data = np.array(
        [
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            2.50000000e-01,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            2.50000000e-01,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            2.50000000e-01,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            2.50000000e-01,
            1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            5.00000000e-03,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            5.00000000e-03,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            5.00000000e-03,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            5.00000000e-03,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            1.00000000e-04,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -2.50000000e-01,
            -1.00000000e00,
            -2.50000000e-01,
            -1.00000000e00,
            -2.50000000e-01,
            -1.00000000e00,
            -2.50000000e-01,
            -1.00000000e00,
            2.50000000e-01,
            -1.00000000e00,
            2.50000000e-01,
            -1.00000000e00,
            2.50000000e-01,
            -1.00000000e00,
            2.50000000e-01,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -5.00000000e-03,
            -1.00000000e00,
            5.00000000e-03,
            -1.00000000e00,
            -5.00000000e-03,
            -1.00000000e00,
            5.00000000e-03,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.11022302e-18,
            -1.00000000e00,
            1.11022302e-18,
            -1.00000000e00,
            -1.11022302e-18,
            -1.00000000e00,
            1.11022302e-18,
            -1.00000000e00,
            -5.55111512e-19,
            -1.00000000e00,
            5.55111512e-19,
            -1.00000000e00,
            -5.55111512e-19,
            -1.00000000e00,
            5.55111512e-19,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -5.00000000e-03,
            -1.00000000e00,
            5.00000000e-03,
            -1.00000000e00,
            -5.00000000e-03,
            -1.00000000e00,
            5.00000000e-03,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e-04,
            -1.00000000e00,
            1.00000000e-04,
            -1.00000000e00,
            -1.00000000e00,
            -1.00000000e00,
        ]
    )

    U = sps.coo_matrix((data, (row, col)), shape=(81, 81)).toarray()

    rhs = np.array(
        [
            2.5e-01,
            0.0e00,
            2.5e-01,
            0.0e00,
            2.5e-01,
            0.0e00,
            2.5e-01,
            0.0e00,
            5.0e-03,
            0.0e00,
            5.0e-03,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            5.0e-03,
            0.0e00,
            5.0e-03,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            1.0e-04,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
            0.0e00,
        ]
    )

    return U, rhs
